/*
 * @FilePath: usr_text_output.hpp
 * @Author: wyx
 * @Date: 2023-08-12 16:29:58
 * @LastEditors: 
 * @LastEditTime: 2024-3-21 15:58:49
 * Copyright: 2023 xxxTech CO.,LTD. All Rights Reserved.
 * @Descripttion: 
 */
#pragma once
#ifndef __USER_INC_H_
#define __USER_INC_H_


// #include <vector>

// #include <eigen3/Eigen/Dense>
// #include <iostream>
// #include <fstream>
// #include <time.h>
// #include <sys/time.h>
// #include <memory> //make_shared只能指针用到此头文件
// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <signal.h>
// #include <poll.h>
// #include <boost/functional/hash.hpp>
// #include <queue>
// #include <string>
// #include <unordered_map>
// #include <iostream>
// #include <map>
#include <iostream>
#include <memory>
#include <fstream>
#include <math.h>

using namespace std;

class FileOstream
{
public:
/**
 * @brief 输出文件类，简化每次创建输出函数的重复书写
 * @param OutFileName 创建的文本变量
 * @param Primary_Directory  一级目录
 * @param SecondaryDirectory 二级目录
 * @param TxtName            txt文本名称
*/
    FileOstream(std::ofstream& OutFileName,std::string Primary_Directory,std::string SecondaryDirectory,std::string TxtName) 
    {
        time_t currentTime;
        time(&currentTime);
        currentTime = currentTime + 8 * 3600;           //	格林尼治标准时间+8个小时
        tm* t = gmtime(&currentTime);

        std::string file_out = Primary_Directory + "/" + SecondaryDirectory + "/" + TxtName + to_string(t->tm_mon + 1) + "-" + to_string(t->tm_mday) + "." + to_string(t->tm_hour) + ":" + to_string(t->tm_min) + ".txt";
        //构造函数中打开指定的文件; ios::out 为写文件而打开文件。 ios::trunc 如果文件存在，先删除，再创建。
        OutFileName.open(file_out.c_str(), ios::out | ios::trunc);
        //将输出的精度设置为 5，即将显示小数点后五位数字
        OutFileName.precision(5);
        //令输出流在显示浮点数时始终显示小数点及尾随的零
        OutFileName.setf(ios_base::showpoint);
    }
};

float NumDecimal(float value,int n_);

#endif